﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Text;
using System.Web.UI.WebControls;
using System.Web;
using System.Data;

namespace BO
{
    public class Utils
    {
        #region buildlink
        public static string BuildLinkZoneNews(DataTable dt)
        {
            string kq = "";
            if (dt.Rows.Count > 0)
            {
                string ZoneID = dt.Rows[0][Const.tbZoneNews.ZoneId].ToString();
                string ParentID = dt.Rows[0][Const.tbZoneNews.ParentId].ToString();
                kq = "/nz" + ZoneID + "p" + ParentID + "/" + dt.Rows[0][Const.tbZoneNews.url].ToString();
            }
            return kq;
        }
        public static string BuildNewsDetail(string NewsID, string str)
        {
            return str + NewsID + ".htm";
        }
        public static string BuildLinkUrlNice(string str)
        {
            string nameConvert = ConverLinkNice((TrimVietnameseMark(str, true))).Replace("--", "-");
            return nameConvert;
        }
        public static string ConverLinkNice(string str)
        {
            str = str.Replace(".", "-");
            str = str.Replace("&", "-");
            str = str.Replace("/", "-");
            str = str.Replace(",", "-");
            str = str.Replace("_", "-");
            str = str.Replace(";", "-");
            str = str.Replace("?", "-");
            str = str.Replace("(", "-");
            str = str.Replace(")", "-");
            str = str.Replace("[", "-");
            str = str.Replace("]", "-");
            str = str.Replace("{", "-");
            str = str.Replace("}", "-");
            str = str.Replace("<", "-");
            str = str.Replace(">", "-");
            str = str.Replace("'", "-");
            str = str.Replace(" ", "-");
            str = str.Replace("  ", "-");
            str = str.Replace("”", "");
            str = str.Replace("“", "");
            str = str.Replace("--", "");
            return str;
        }
        public static string BuildLinkDetail(string name, string id, string index)
        {
            string link = "/{0}-i{1}id{2}.htm";
            string nameConvert = ConverLinkNice((TrimVietnameseMark(name, true))).Replace("--", "-");
            return string.Format(link, nameConvert, id, index);
        }
        #endregion

        #region Formart
        public static string getSubStringNice(string str, int len)
        {
            string kq = "";
            try
            {
            if (str != "")
            {
                if (str.Length > len)
                {
                    str = str.Substring(0, len);
                    string[] strNice = str.Split(' ');
                    if (str.EndsWith(" ") == true)
                    {
                        kq = str.Substring(0, len).Trim() + "...";
                    }
                    else
                    {
                        for (int i = 0; i < (strNice.Length - 1); i++)
                        {
                            kq += strNice[i] + " ";
                        }
                        kq = kq.Trim() + "...";
                    }
                }
                else
                {
                    kq = str;
                }
            }
            }
            catch (Exception)
            {

                kq = "";
            }
            return kq;
        }
        public static string FormatStringSearch(string str)
        {
            //chuan hoa ve k dau k cach
            //bo di cac ki tu la
            return TrimSpecialChar(TrimVietnameseMark(str, true)).Replace(" ", "");
        }
        public static string ShowDatetime(string str, string sFormat)
        {
            //ngay thang
            return DateTime.Parse(str).ToString(sFormat);
        }
        public static string ShowDatetimeyyyyMMdd(string str, string sFormatGoc, string sFormatDoi)
        {
            //ngay thang
            return DateTime.ParseExact(str, sFormatGoc, null).ToString(sFormatDoi);
        }
        public static string ConvertMoneyNice(string money, string dvt)
        {
            //tien
            long number = long.Parse(money);
            if (number >= 1000)
            {
                return String.Format("{0:0,0}", number).ToString().Replace(',', '.') + dvt;
            }
            else
            {
                return money.ToString() + dvt;
            }
        }
        public static string TrimVietnameseMark(string str)
        {
            str = str.Replace(".", " ");
            str = str.Replace(",", " ");
            str = str.Replace("_", " ");
            str = str.Replace(";", " ");
            str = str.Replace("?", " ");
            str = str.Replace("(", "");
            str = str.Replace(")", "");
            str = str.Replace("[", "");
            str = str.Replace("]", "");
            str = str.Replace("{", "");
            str = str.Replace("}", "");
            str = str.Replace("<", "");
            str = str.Replace(">", "");
            str = str.Replace("'", "");

            while (str.IndexOf("  ") > 0)
            {
                str = str.Replace("  ", " ");
            }

            str = str.Replace("ấ", "a");
            str = str.Replace("ầ", "a");
            str = str.Replace("ẩ", "a");
            str = str.Replace("ẫ", "a");
            str = str.Replace("ậ", "a");

            str = str.Replace("Ấ", "A");
            str = str.Replace("Ầ", "A");
            str = str.Replace("Ẩ", "A");
            str = str.Replace("Ẫ", "A");
            str = str.Replace("Ậ", "A");

            str = str.Replace("ắ", "a");
            str = str.Replace("ằ", "a");
            str = str.Replace("ẳ", "a");
            str = str.Replace("ẵ", "a");
            str = str.Replace("ặ", "a");

            str = str.Replace("Ắ", "A");
            str = str.Replace("Ằ", "A");
            str = str.Replace("Ẳ", "A");
            str = str.Replace("Ẵ", "A");
            str = str.Replace("Ặ", "A");

            str = str.Replace("á", "a");
            str = str.Replace("à", "a");
            str = str.Replace("ả", "a");
            str = str.Replace("ã", "a");
            str = str.Replace("ạ", "a");
            str = str.Replace("â", "a");
            str = str.Replace("ă", "a");

            str = str.Replace("Á", "A");
            str = str.Replace("À", "A");
            str = str.Replace("Ả", "A");
            str = str.Replace("Ã", "A");
            str = str.Replace("Ạ", "A");
            str = str.Replace("Â", "A");
            str = str.Replace("Ă", "A");

            str = str.Replace("ế", "e");
            str = str.Replace("ề", "e");
            str = str.Replace("ể", "e");
            str = str.Replace("ễ", "e");
            str = str.Replace("ệ", "e");

            str = str.Replace("Ế", "E");
            str = str.Replace("Ề", "E");
            str = str.Replace("Ể", "E");
            str = str.Replace("Ễ", "E");
            str = str.Replace("Ệ", "E");

            str = str.Replace("é", "e");
            str = str.Replace("è", "e");
            str = str.Replace("ẻ", "e");
            str = str.Replace("ẽ", "e");
            str = str.Replace("ẹ", "e");
            str = str.Replace("ê", "e");

            str = str.Replace("É", "E");
            str = str.Replace("È", "E");
            str = str.Replace("Ẻ", "E");
            str = str.Replace("Ẽ", "E");
            str = str.Replace("Ẹ", "E");
            str = str.Replace("Ê", "E");

            str = str.Replace("í", "i");
            str = str.Replace("ì", "i");
            str = str.Replace("ỉ", "i");
            str = str.Replace("ĩ", "i");
            str = str.Replace("ị", "i");

            str = str.Replace("Í", "I");
            str = str.Replace("Ì", "I");
            str = str.Replace("Ỉ", "I");
            str = str.Replace("Ĩ", "I");
            str = str.Replace("Ị", "I");

            str = str.Replace("ố", "o");
            str = str.Replace("ồ", "o");
            str = str.Replace("ổ", "o");
            str = str.Replace("ỗ", "o");
            str = str.Replace("ộ", "o");

            str = str.Replace("Ố", "O");
            str = str.Replace("Ồ", "O");
            str = str.Replace("Ổ", "O");
            str = str.Replace("Ô", "O");
            str = str.Replace("Ộ", "O");

            str = str.Replace("ớ", "o");
            str = str.Replace("ờ", "o");
            str = str.Replace("ở", "o");
            str = str.Replace("ỡ", "o");
            str = str.Replace("ợ", "o");

            str = str.Replace("Ớ", "O");
            str = str.Replace("Ờ", "O");
            str = str.Replace("Ở", "O");
            str = str.Replace("Ỡ", "O");
            str = str.Replace("Ợ", "O");

            str = str.Replace("ứ", "u");
            str = str.Replace("ừ", "u");
            str = str.Replace("ử", "u");
            str = str.Replace("ữ", "u");
            str = str.Replace("ự", "u");

            str = str.Replace("Ứ", "U");
            str = str.Replace("Ừ", "U");
            str = str.Replace("Ử", "U");
            str = str.Replace("Ữ", "U");
            str = str.Replace("Ự", "U");

            str = str.Replace("ý", "y");
            str = str.Replace("ỳ", "y");
            str = str.Replace("ỷ", "y");
            str = str.Replace("ỹ", "y");
            str = str.Replace("ỵ", "y");

            str = str.Replace("Ý", "Y");
            str = str.Replace("Ỳ", "Y");
            str = str.Replace("Ỷ", "Y");
            str = str.Replace("Ỹ", "Y");
            str = str.Replace("Ỵ", "Y");

            str = str.Replace("Đ", "D");
            str = str.Replace("Đ", "D");
            str = str.Replace("đ", "d");

            str = str.Replace("ó", "o");
            str = str.Replace("ò", "o");
            str = str.Replace("ỏ", "o");
            str = str.Replace("õ", "o");
            str = str.Replace("ọ", "o");
            str = str.Replace("ô", "o");
            str = str.Replace("ơ", "o");

            str = str.Replace("Ó", "O");
            str = str.Replace("Ò", "O");
            str = str.Replace("Ỏ", "O");
            str = str.Replace("Õ", "O");
            str = str.Replace("Ọ", "O");
            str = str.Replace("Ô", "O");
            str = str.Replace("Ơ", "O");

            str = str.Replace("ú", "u");
            str = str.Replace("ù", "u");
            str = str.Replace("ủ", "u");
            str = str.Replace("ũ", "u");
            str = str.Replace("ụ", "u");
            str = str.Replace("ư", "u");

            str = str.Replace("Ú", "U");
            str = str.Replace("Ù", "U");
            str = str.Replace("Ủ", "U");
            str = str.Replace("Ũ", "U");
            str = str.Replace("Ụ", "U");
            str = str.Replace("Ư", "U");

            str = str.ToLower();

            return str;
        }
        public static string TrimVietnameseMark(string str, bool isLower)
        {
            str = str.Replace(".", " ");
            str = str.Replace(",", " ");
            str = str.Replace("_", " ");
            str = str.Replace(";", " ");
            str = str.Replace("?", " ");
            str = str.Replace("(", "");
            str = str.Replace(")", "");
            str = str.Replace("[", "");
            str = str.Replace("]", "");
            str = str.Replace("{", "");
            str = str.Replace("}", "");
            str = str.Replace("<", "");
            str = str.Replace(">", "");
            str = str.Replace("'", "");

            while (str.IndexOf("  ") > 0)
            {
                str = str.Replace("  ", " ");
            }

            str = str.Replace("ấ", "a");
            str = str.Replace("ầ", "a");
            str = str.Replace("ẩ", "a");
            str = str.Replace("ẫ", "a");
            str = str.Replace("ậ", "a");

            str = str.Replace("Ấ", "A");
            str = str.Replace("Ầ", "A");
            str = str.Replace("Ẩ", "A");
            str = str.Replace("Ẫ", "A");
            str = str.Replace("Ậ", "A");

            str = str.Replace("ắ", "a");
            str = str.Replace("ằ", "a");
            str = str.Replace("ẳ", "a");
            str = str.Replace("ẵ", "a");
            str = str.Replace("ặ", "a");

            str = str.Replace("Ắ", "A");
            str = str.Replace("Ằ", "A");
            str = str.Replace("Ẳ", "A");
            str = str.Replace("Ẵ", "A");
            str = str.Replace("Ặ", "A");

            str = str.Replace("á", "a");
            str = str.Replace("à", "a");
            str = str.Replace("ả", "a");
            str = str.Replace("ã", "a");
            str = str.Replace("ạ", "a");
            str = str.Replace("â", "a");
            str = str.Replace("ă", "a");

            str = str.Replace("Á", "A");
            str = str.Replace("À", "A");
            str = str.Replace("Ả", "A");
            str = str.Replace("Ã", "A");
            str = str.Replace("Ạ", "A");
            str = str.Replace("Â", "A");
            str = str.Replace("Ă", "A");

            str = str.Replace("ế", "e");
            str = str.Replace("ề", "e");
            str = str.Replace("ể", "e");
            str = str.Replace("ễ", "e");
            str = str.Replace("ệ", "e");

            str = str.Replace("Ế", "E");
            str = str.Replace("Ề", "E");
            str = str.Replace("Ể", "E");
            str = str.Replace("Ễ", "E");
            str = str.Replace("Ệ", "E");

            str = str.Replace("é", "e");
            str = str.Replace("è", "e");
            str = str.Replace("ẻ", "e");
            str = str.Replace("ẽ", "e");
            str = str.Replace("ẹ", "e");
            str = str.Replace("ê", "e");

            str = str.Replace("É", "E");
            str = str.Replace("È", "E");
            str = str.Replace("Ẻ", "E");
            str = str.Replace("Ẽ", "E");
            str = str.Replace("Ẹ", "E");
            str = str.Replace("Ê", "E");

            str = str.Replace("í", "i");
            str = str.Replace("ì", "i");
            str = str.Replace("ỉ", "i");
            str = str.Replace("ĩ", "i");
            str = str.Replace("ị", "i");

            str = str.Replace("Í", "I");
            str = str.Replace("Ì", "I");
            str = str.Replace("Ỉ", "I");
            str = str.Replace("Ĩ", "I");
            str = str.Replace("Ị", "I");

            str = str.Replace("ố", "o");
            str = str.Replace("ồ", "o");
            str = str.Replace("ổ", "o");
            str = str.Replace("ỗ", "o");
            str = str.Replace("ộ", "o");

            str = str.Replace("Ố", "O");
            str = str.Replace("Ồ", "O");
            str = str.Replace("Ổ", "O");
            str = str.Replace("Ô", "O");
            str = str.Replace("Ộ", "O");

            str = str.Replace("ớ", "o");
            str = str.Replace("ờ", "o");
            str = str.Replace("ở", "o");
            str = str.Replace("ỡ", "o");
            str = str.Replace("ợ", "o");

            str = str.Replace("Ớ", "O");
            str = str.Replace("Ờ", "O");
            str = str.Replace("Ở", "O");
            str = str.Replace("Ỡ", "O");
            str = str.Replace("Ợ", "O");

            str = str.Replace("ứ", "u");
            str = str.Replace("ừ", "u");
            str = str.Replace("ử", "u");
            str = str.Replace("ữ", "u");
            str = str.Replace("ự", "u");

            str = str.Replace("Ứ", "U");
            str = str.Replace("Ừ", "U");
            str = str.Replace("Ử", "U");
            str = str.Replace("Ữ", "U");
            str = str.Replace("Ự", "U");

            str = str.Replace("ý", "y");
            str = str.Replace("ỳ", "y");
            str = str.Replace("ỷ", "y");
            str = str.Replace("ỹ", "y");
            str = str.Replace("ỵ", "y");

            str = str.Replace("Ý", "Y");
            str = str.Replace("Ỳ", "Y");
            str = str.Replace("Ỷ", "Y");
            str = str.Replace("Ỹ", "Y");
            str = str.Replace("Ỵ", "Y");

            str = str.Replace("Đ", "D");
            str = str.Replace("Đ", "D");
            str = str.Replace("đ", "d");

            str = str.Replace("ó", "o");
            str = str.Replace("ò", "o");
            str = str.Replace("ỏ", "o");
            str = str.Replace("õ", "o");
            str = str.Replace("ọ", "o");
            str = str.Replace("ô", "o");
            str = str.Replace("ơ", "o");

            str = str.Replace("Ó", "O");
            str = str.Replace("Ò", "O");
            str = str.Replace("Ỏ", "O");
            str = str.Replace("Õ", "O");
            str = str.Replace("Ọ", "O");
            str = str.Replace("Ô", "O");
            str = str.Replace("Ơ", "O");

            str = str.Replace("ú", "u");
            str = str.Replace("ù", "u");
            str = str.Replace("ủ", "u");
            str = str.Replace("ũ", "u");
            str = str.Replace("ụ", "u");
            str = str.Replace("ư", "u");

            str = str.Replace("Ú", "U");
            str = str.Replace("Ù", "U");
            str = str.Replace("Ủ", "U");
            str = str.Replace("Ũ", "U");
            str = str.Replace("Ụ", "U");
            str = str.Replace("Ư", "U");

            if (isLower) str = str.ToLower();

            return str;
        }
        public static string TrimSpecialChar(string str)
        {
            str = TrimVietnameseMark(str);
            str = str.Replace(".", " ");
            str = str.Replace(",", " ");
            str = str.Replace("_", " ");
            str = str.Replace(";", " ");
            str = str.Replace("?", " ");
            str = str.Replace("(", "");
            str = str.Replace(")", "");
            str = str.Replace("[", "");
            str = str.Replace("]", "");
            str = str.Replace("{", "");
            str = str.Replace("}", "");
            str = str.Replace("<", "");
            str = str.Replace(">", "");
            str = str.Replace("'", "");
            //
            str = str.Replace("`", "");
            str = str.Replace("&", "");
            str = str.Replace("^", "");
            str = str.Replace("$", "");
            str = str.Replace("%", "");
            str = str.Replace("#", "");
            str = str.Replace("@", "");
            str = str.Replace("*", "");
            str = str.Replace("-", "");
            while (str.IndexOf("  ") > 0)
            {
                str = str.Replace("  ", " ");
            }
            return str;
        }
        #endregion

        #region support
        public static string CropImageMobile(int width, int height, string src)
        {
            string sHttpDomain = ConfigurationManager.AppSettings["DomainWeb"].ToString();
            return sHttpDomain + "/Services/CropImages.aspx?width=" + width + "&height=" + height + "&src=" + src;
        }
        public static string CropImage(int width, int height, string src)
        {
            return "/Services/CropImages.aspx?width=" + width + "&height=" + height + "&src=" + src;
        }
        public static string EnCodeString(string str)
        {
            return HttpUtility.HtmlEncode(str.Replace("&nbsp;", " ")).Replace("'", "&#39;");
        }
        public static bool IsNumber(string _strInput)
        {
            try
            {
                Int64 _intOutPut = Convert.ToInt64(_strInput);
                return true;
            }
            catch { return false; }
        }
        public static string GetOneImagesByArr(string arrImg)
        {
            string kq = "";
            if (arrImg.Contains(","))
            {
                string[] arr = arrImg.Split(',');
                kq = arr[0];
            }
            else
            {
                kq = arrImg;
            }
            return kq;
        }
        public static string ShowImagesByArr(string arrImg)
        {
            string kq = "";
            if (arrImg.Contains(","))
            {
                string[] arr = arrImg.Split(',');
                for (int i = 0; i < arr.Length; i++)
                {
                    if (arr[i] != "")
                    {
                        string addBr = "";
                        if (i == 1 || i == 3)
                        {
                            // addBr = "</br>";
                        }
                        kq += "<img style=\"padding:3px\" width=\"80px\" src=\"" + arr[i] + "\">" + addBr;
                    }
                }
            }
            else
            {
                kq = "<img width=\"80px\" src=\"" + arrImg + "\">";
            }
            return kq;
        }
        public static void SetRSByStatus(Label lbl, int kq, string Thatbai, string Thanhcong)
        {
            if (kq == 1)
            {
                lbl.Text = Thanhcong;

            }
            else
            {
                lbl.Text = Thatbai;
            }
        }
        public static string setMoney(string money)
        {
            return String.Format("{0:0,0 }", int.Parse(money)); ;
        }
        public static void setOneSelect(CheckBox ckSelect, string values)
        {
            if (values == "1")
            {
                ckSelect.Checked = true;
            }
            else
            {
                ckSelect.Checked = false;
            }
        }
        public static string getOneSelect(CheckBox ckSelect)
        {
            if (ckSelect.Checked == true)
            {
                return "1";
            }
            else
            {
                return "0";
            }
        }
        public static string replateTitleHtmlChar(string str)
        {
            //title cho alt
            str = HttpUtility.HtmlEncode(str.Replace("&nbsp;", " ")).Replace("'", "&#39;");
            return str;
        }
        public static string refineTitleForRewrite(string title)
        {
            title = TrimVietnameseMark(title);
            title = title.Replace(" ", "-");
            title = title.Replace("  ", "-");
            title = title.Replace("%", "-");
            title = title.Replace("&", "-");
            title = title.Replace("--", "-");
            title = title.Replace("_", "-");
            title = title.Replace("?", "");
            title = title.Replace("'", "");
            title = title.Replace(".", "");
            title = title.Replace("\\", "");
            title = title.Replace("/", "");
            title = title.Replace(",", "");
            title = title.Replace(":", "");
            title = title.Replace("’", "");
            title = title.Replace("‘", "");
            title = title.Replace("\"", "");
            title = title.Replace("“", "");
            title = title.Replace("”", "");
            if (title.EndsWith("-")) title = title.Substring(0, title.Length - 1);
            return title;
        }
        public static bool IsMobile(string userAgent)
        {
            userAgent = userAgent.ToLower();
            return userAgent.Contains("iphone") |
            userAgent.Contains("ppc") |
            userAgent.Contains("windows ce") |
            userAgent.Contains("blackberry") |
            userAgent.Contains("opera mini") |
            userAgent.Contains("mobile") |
            userAgent.Contains("palm") |
            userAgent.Contains("portable") |
            userAgent.Contains("android");
        }
        public static string getLinkRewrite(string str)
        {
            string kq = TrimVietnameseMark(str);
            kq = refineTitleForRewrite(str);
            return kq;
        }
        //format link
        public static string setImagesNoLink(string src, string title, string sClass)
        {
            //anh k kem link
            string kq = "<img src=\"{0}\" alt=\"{1}\" title=\"{1}\" {2} />";
            kq = string.Format(kq, src, title, sClass);
            return kq;
        }
        public static string setImagesLink(string src, string title, string sClassImg, string link, string sClassLink)
        {
            //anh kem link
            string kq = "<a href=\"{3}\" title=\"{1}\" {4}><img src=\"{0}\" alt=\"{1}\" title=\"{1}\" {2} /></a>";
            kq = string.Format(kq, src, replateTitleHtmlChar(title), sClassImg, link, sClassLink);
            return kq;
        }
        public static string setLink(string link, string titleLink, string sClassLink, string title)
        {
            //link va title
            string kq = "<a href=\"{0}\" title=\"{1}\" {2}>{3}</a>";
            kq = string.Format(kq, link, replateTitleHtmlChar(titleLink), sClassLink, title);
            return kq;
        }
        //
        #endregion

        public static string formatLinkDownload(string link, int typeProduct)
        {
            string iconType = string.Empty;
            if (typeProduct == 2)
            {
                iconType = "<a title=\"Catalog (data sheet ) excel\" href=\"" + link + "\"><img title=\"Catalog (data sheet ) excel\" style=\"width:auto;height:60px;\" src=\"/Images/icon/icon-catalog.jpg\" /></a>";
            }
            else if (typeProduct == 3)
            {
                iconType = "<a title=\"Hướng dẫn sử dụng\" href=\"" + link + "\"><img title=\"Hướng dẫn sử dụng\" style=\"width:auto;height:60px;\" src=\"/Images/icon/icon-guide.jpg\" /></a>";
            }
            else if (typeProduct == 4)
            {
                iconType = "<a title=\"Review sản phẩm\" href=\"javascript:void(0)\" onclick=\"PopupWindowCenter('/ReviewVideo.aspx?url=" + link + "','',560,315)\"><img title=\"Review sản phẩm\" style=\"width:auto;height:60px;\" src=\"/Images/icon/review.jpg\" /></a>";
            }
            else
            {
                iconType = "<a title=\"Phần mềm\" href=\"" + link + "\"><img title=\"Phần mềm\" style=\"width:auto;height:60px;\" src=\"/Images/icon/icon-download.jpg\" /></a>";
            }
            return iconType;
        }

    }
}
